package rule03;

/**
 * @author ChangLiang
 * @date 2020/3/16
 */
public final class SingletonObject6 {

    private SingletonObject6(){}

    private static class InstanceHolder{
        private final static SingletonObject6 instance = new SingletonObject6();
    }

    /**
     * 但实际上比如在spring中 SingletonObject6自动注入，就是new的过程，就已经导致类的主动加载了
     *
     * 关键是只有当访问这个方法的时候，才会导致内部类InstanceHolder的加载，这就是懒加载的含义
     *
     * @return
     */
    public static SingletonObject6 getInstance() {
        // 内部类的静态变量，会导致内部类InstanceHolder的加载
        return InstanceHolder.instance;
    }
}
